<?php
declare (strict_types = 1);

namespace app\index\controller;

use think\facade\View;
use think\facade\Request;

class Index
{
    public function index()
    {
        //[访问模式]
        //pathinfo

        //[访问规则]
        // 域名/入口文件/应用/控制器/方法
        //index文件是固定的->应用文件(应用名)->是文件名（控制器)->方法名
        //url=http://tp26.com/index.php/index/index/index

        //[控制器定义]
        //目录是用小写+下划线  index_demo  （对应应用目录）
        //控制器文件采用驼峰法命名（大驼峰法：首字母大写）
        //控制器   以.php为后缀
        //类的文件均以命名空间定义，并且命名空间的路径和类库文件所在路径一致；
        //控制器类名和文件名保持一致，采用驼峰法命名（大驼峰法：首字母大写）
        //方法的命名使用驼峰法（小驼峰法：首字母小写）


        //[调试模式]
        //将.example.env文件   改成.env  文件在 入口文件下面
        //若是不想用把.env文件里 APP_DEBUG = true 改成  APP_DEBUG = false
        //[下载模板引擎]
        //ThingPHP下的视图  直接点就行
        //composer require topthink/think-view

        //调用数据库  CORD
        //数据发送至视图
        //return '您好！这是一个[index]示例应用';
        //[视图定义]
        //view目录下建立一个对应控制器的文件夹
        //文件夹里面建立对应方法的html页  方法明大写转小写加下划线 以.html结尾


        //[渲染输出]
        //输出字符串
        //  $data=['id'=>1,'name'=>'zhang'];
        //  输出json
        //  return json($data);
        //参数
        //  渲染默认模板输出
        //  默认渲染对应的html页
        //  view 渲染视图的助手函数
        //1：模板表达式  [应用@][控制器/][方法(html页)]
        //2：变量参数
        //return view('index@index/demo',$data);//必须有对应的文件夹
        //静态类方法
//        return View::fetch('index@index/demo',$data);

        //[URL生成]
        //参数:
        //    没有参时默认生成控制器方法自己本身的地址
        //1： 第一个参数  是地址  [应用/] [控制器/] 方法(html页)
        //2： 第二个参数  代表传的参数  地址栏参数  最好不是中文   关联数组
        //3:  第三个参数  伪静态后缀  默认true  .html结尾
        //4:  第四个参数  域名        默认false
//
//        echo \think\facade\Route::buildUrl("admin/index/demo",['id'=>1,'name'=>"zx"])
//            ->suffix("php")//伪静态后缀
//            ->domain("www.baidu.com");//域名

        //[URL助手函数]
        //参数同上   第三个参数去config 去改默认尾缀
        //echo url("admin/index/demo",['id'=>1,'name'=>"zx"],".php","www.baidu.com");
        //[模板赋值]
        //标量  字符串 整形 浮点 布尔值  使用is_scalar 来判断  var_dump(is_scalar($str));
//          $str='tp26';
//          var_dump(is_scalar($str));
//          view::assign('str',$str);
//          默认值:default
//          输出标量：{$str|default="空"}   再html页展示 就像三木判断一样
        // 一维数组
//            $data=['id'=>1,'name'=>'张'];
//            $data1=[2,'中撒旦',"天王盖地虎"];
//            view::assign('data',$data);
//            view::assign('data1',$data1);
        //多维数组
//            $data2=[
//                ['id'=>1,'name'=>'张'],
//                ['id'=>2,'name'=>'王'],
//                ['id'=>3,'name'=>'李'],
//                ];
//            view::assign('data2',$data2);

        //对象
//        $obj = new \stdClass();
//        $obj->id = 5;
//        $obj->name = "悟能";
//        view::assign("obj",$obj);
//        批量
//        $data3= ['id'=>1,'name'=>'张'];
//        view::assign($data3);

//        $data4=[
//                ['id'=>'老大','name'=>'张'],
//                ['id'=>'老二','name'=>'王'],
//                ['id'=>'老三','name'=>'李'],
//                ['id'=>'老四','name'=>'赵'],
//                ['id'=>'老无','name'=>'钱'],
//                ];
//        view::assign('data4',$data4);
//        //[比较标签]
//        $str="zhang";
//        view::assign('str',$str);
//        $str1=1;
//        view::assign('str1',$str1);


//        $param=Request::param();
//        echo "<pre>";
//        print_r($param);
//        echo "</pre>";
//
//        echo Request::root();
//        echo "<br>";  //操作名
//        echo Request::action(false);
//        echo "<br>";   //控制器名
//        echo Request::controller(false);
//        echo "<br>"; //  到应用里
//        echo  app('http')->getName();
//        echo "<br>";
          echo Request::get('name','default',null);




//        return View::fetch("index@index/index");

    }

}
